package hottargui.domain.alpha;

import hottargui.domain.*;
import hottargui.domain.standard.*;


public class AlphaGameFactoryImpl implements GameFactory{


	public Board createBoard() {
		return new StandardBoard(new AlphaBoardLayoutStrategyImpl());
	}


	public EndRoundStrategy createEndRoundStrategy(StateMachine sm) {
		return new AlphaEndRoundStrategyImpl(sm);
	}


	public WinnerStrategy createWinnerStrategy(StateMachine sm) {
		return new AlphaWinnerStrategyImpl(sm.getBoard());
	}


	public RoundSequenceStrategy createRoundSequenceStrategy(StateMachine sm) {
		return new AlphaRoundSequenceStrategyImpl(sm);
	}


	public RoundSequenceStrategy createRoundSequenceStrategy(StateMachine sm, DeckOfCards deck) {
		return new AlphaRoundSequenceStrategyImpl(sm);
	}


	public PlaceUnitsStrategy createPlaceUnitsStrategy() {
		return new AlphaPlaceUnitsStrategyImpl();
	}


	public AttackStrategy createAttackStrategy() {
		return new AlphaAttackStrategy();
	}


	public MoveToBuyStrategy createMoveToBuyStrategy() {
		return new AlphaMoveToBuyStrategyImpl();
	}

	public RollDiceStrategy createRollDiceStrategy() {
		return new NullRollDiceStrategy();
	}

	public AfterDieRollActionStrategy createAfterDieRollActionStrategy(StateMachine sm) {
		return new AfterDieRollActionNullStrategyImpl(); 
	}

	public String getWindowTitle() {
		return "Hottargui Alpha Variant";
	}
}

